1. Technical Field
The present invention relates generally to an improved data processing system and, in particular, to a mechanism for data queue prioritization in a multi-tier network system. Still more particularly, the present invention provides a mechanism for queuing client data prioritized in a networked data processing system on a per-processor basis. Additionally, the present invention provides a mechanism for dynamically adjusting the priority of persistent connections between a mid-tier and backend data server at the network layer in a multi-tier network.
2. Description of Related Art
Various networked data processing system traffic control schemes for queuing and filtering network traffic are used for providing service level agreement (SLA) traffic prioritization. For example, the Linux network stack has infrastructure for traffic control that has queuing disciplines (qdisc) and filters. A hierarchy of qdiscs can be constructed jointly with a class hierarchy to support Quality of Service (QoS) features. Traffic can be routed to different classes by employing filters that are matched against packet header fields.
For receive side, that is the server side in a multi-tier network, prioritization is provided on a connection basis. For example, when an incoming connection is established, the connection may be prioritized based on one or more priority filters to queue the connection in one of a plurality of queues allocated to different priority classes. However, such queuing mechanisms rely on connection prioritizations. For example, in a network using the transport control protocol/Internet protocol (TCP/IP), a connection is established after completion of a three-phase process typically referred to as a three-way handshake. In such systems, prioritization is limited to granting or denying a connection based on a client priority level and, for example, network metrics such as traffic loads.
In implementations where prioritization is enforced only at the connection level, priority is enforced depending on the arrival of the incoming connections when multiple priority clients are serviced concurrently. For example, if the arrival of the connections are a mix of high and low priority connections then high priority connections are serviced prior to servicing the low priority connections. However, after the connections are established, all the connections are treated without any discrimination.
Additionally, SLA traffic prioritization may sometimes result in inefficient utilization of the overall network system transmission capacity. For example, the network system transmission capacity may be partitioned into capacities that are respectively allocated to different traffic priority classes. In the event that one traffic priority class experiences a heavy load, the network system capacity allocated to that traffic priority class may become saturated, or consumed. In the event that a second traffic priority class experiences a traffic load below the capacity allocated to the second traffic priority class, an idle portion of the second traffic priority class capacity will be unused, while at the same time traffic of the first priority class may be blocked from transmission due to saturation of the first traffic priority class. In such a situation, the overall network transmission capacity is underutilized.
It would be advantageous to provide a mechanism for network-level prioritization for providing SLA prioritization queuing of inbound traffic at a server providing connectivity to clients of different priorities. It would be further advantageous to provide a mechanism for providing network-level prioritization in a multi-processor system of a multi-tier network for priority queuing of incoming traffic on a per-processor basis. It would further be advantageous to provide a mechanism to more efficiently utilize network transmission capacity in a network featuring SLA prioritization of traffic data.